package com.gdones.bootserver.bus.role.controller;


import com.gdones.bootserver.bus.account.dto.Account;
import com.gdones.bootserver.bus.role.dto.RoleUserDTO;
import com.gdones.bootserver.bus.role.service.IRoleUserService;
import com.gdones.common.core.annotations.MySysLog;
import com.gdones.common.core.annotations.MySysLogOpration;
import com.gdones.common.core.dto.MyPageBand;
import com.gdones.common.core.dto.MyResult;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.*;

import javax.annotation.Resource;

/**
 * 角色管理-用户授权接口
 *
 * @author GaoJingBo
 * @since 2023-03-28
 */
@RestController
@RequestMapping("/sys/roleUser")
@Api(tags={"角色管理-用户授权接口"})
@Slf4j
public class RoleUserController {

    @Resource(name = "roleUserServiceImpl")
    private IRoleUserService roleUserService;

    /**
     * 角色管理-用户授权接口：分页查询角色授权用户信息
     * @param user
     * @param pager
     * @return
     */
    @GetMapping("/pages")
    @ApiOperation("分页查询角色授权用户信息")
    @MySysLog(modelName="角色管理-授权用户",methodDesc = "分页查询角色授权用户信息",methodType = MySysLogOpration.GET)
    public MyResult getRolePages(Account user, String roleID, MyPageBand pager){

        log.info("--- 角色管理-用户授权接口：分页查询角色授权用户信息");

        MyResult result = new MyResult();

        try{

            result = roleUserService.pages(user,roleID,pager);

        }catch (Exception e){
            e.printStackTrace();
            result.setCode("9999");
            result.setMsg("分页查询角色授权用户信息系统异常！");
        }

        return result;
    }


    /**
     * 删除角色授权用户信息（可支持批量删除）
     * @param ids
     * @return
     */
    @DeleteMapping("/deletes")
    @ApiOperation("删除角色授权用户信息（可支持批量删除）")
    @MySysLog(modelName="角色管理-授权用户",methodDesc = "删除角色授权用户信息（可支持批量删除）",methodType = MySysLogOpration.DELETE)
    public MyResult deletes(String ids){
        log.info("--- 角色管理：删除角色授权用户信息");

        MyResult result = new MyResult();

        try{

            result = roleUserService.deletes(ids);

        }catch (Exception e){
            e.printStackTrace();
            result.setCode("9999");
            result.setMsg("删除角色授权用户信息系统异常！");
        }

        return result;
    }

    /**
     * 角色管理：添加角色授权用户信息
     * @param roleUserDto
     * @return
     */
    @PostMapping("/add")
    @ApiOperation("添加角色授权用户信息")
    @MySysLog(modelName="角色管理-授权用户",methodDesc = "添加角色授权用户信息",methodType = MySysLogOpration.POST)
    public MyResult add(@RequestBody RoleUserDTO roleUserDto){
        log.info("--- 角色管理：添加角色授权用户信息");

        MyResult result = new MyResult();

        try{

            result = roleUserService.add(roleUserDto);

        }catch (Exception e){
            e.printStackTrace();
            result.setCode("9999");
            result.setMsg("添加角色授权用户信息系统异常！");
        }

        return result;
    }

}
